/**
 * 获取主表和子表数据
 * @returns {string}
 */
function getData() {
    // 主表数据
    var main = {
        fields: {}
    };
    //取主表的字段。
    $("input:text[name^='m:'],input[type='hidden'][name^='m:'],textarea[name^='m:'],select[name^='m:'],ul[name^='m:']").each(function () {
        var name = $(this).attr('name');
        var value = handNumberData(this);
        main.fields[name.replace(/.*:/, '')] = value;
    });


    $("textarea[name^='m:'].myeditor").each(function (num) {
        var name = $(this).attr('name');
        var data = getEditorData(editor[num]);
        main.fields[name.replace(/.*:/, '')] = data;
        $(this).val(data);
    });

    //文件上传
    $("ul[name^='m:'].uploadFileList").each(function () {
        var name = $(this).attr('name');
        var fileArray = [];
        if ($(this).children().length > 0) {
            for (var i = 0; i < $(this).children().length; i++) {
                var file = {
                    "fileid": $($(this).children()[i]).attr("fileid"),
                    "name": $($(this).children()[i]).children("p").text(),
                    "fileLevel": $(this).prev().children("select").val()
                };
                fileArray.push(file);
            }
        }
        if(fileArray.length>0){
            main.fields[name.replace(/.*:/, '')] = fileArray;
        }
    });
    //图片上传
    $("ul[name^='m:'].uploadImgList").each(function () {
        var name = $(this).attr('name');
        var fileArray = [];
        if ($(this).children().length > 0) {
            for (var i = 0; i < $(this).children().length; i++) {
                fileArray.push($($(this).children()[i]).attr("fileid"));
            }
        }
        if(fileArray.length>0){
            main.fields[name.replace(/.*:/, '')] = fileArray;
        }
    });

    //控制表单版本 添加
    if (needVer == 1 && id == "") {
        main.fields.version = "";
    }
    //控制表单版本 修改
    if (needVer == 1 && id != "") {
        $.ajax({
            url: serverPath.formPath + setter.formLinkPath + 'dataTemplate/queryDataList?formKey=' + formKey,
            dataType: 'json',
            async: false,
            success: function (result) {
                for (var i = 0; i < result.data.length; i++) {
                    if (result.data[i].ID == id) {
                        main.fields.version = result.data[i].version;
                    }
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {

            }
        });
    }
    //取主表的选择器ID字段
    getSelectorIds(main.fields);
    //设置单选按钮。
    setMainRadioData(main.fields);
    //设置复选框。
    setMainCheckBoxData(main.fields);

    //设置数据字典的值
    $("input[name^='m:'].dataLexiVal").each(function () {
        var name = $(this).attr("name").split(":");
        var fieldName = name[2];
        main.fields[fieldName] = $(this).prev().text() == "请选择" ? "" : $(this).prev().text();
        if($(this).attr("dictype")==="0"){
            main.fields[fieldName] = $(this).parents(".lexiTree").next().find(".lexiSelectCont").find("option:selected").text();
        }
    });

    //设置富文本的值
    $("div[name^='m:'].richTextCont").each(function () {
        var name = $(this).attr("name").split(":");
        var fieldName = name[2];
        main.fields[fieldName] = $(this).find("iframe").contents().find("body").html();
    });
    //子表数据
    var sub = [];
    $('table.subFormTable').each(function () {
        var table = {
            tableName: $(this).attr('class').split(" ")[1],
            fields: []
        };
        $(this).find('tr.temSpace').each(function (i,item) {    /*修复需要提交隐藏的行数据的bug*/
            if(i>1) {
                var row = {};
                var objRow = $(this);
                $("input:text[name^='s:'],input[type='hidden'][name^='s:'],textarea[name^='s:'],select[name^='s:'],ul[name^='m:']", objRow).each(function () {
                    var name = $(this).attr('name').replace(/.*:/, '');
                    var value = handNumberData(this);
                    row[name] = value;
                });

                //子文件上传
                $(".uploadFileList", objRow).each(function () {
                    var name = $(this).attr('name');

                    var fileArray = [];
                    if ($(this).children().length > 0) {
                        for (var i = 0; i < $(this).children().length; i++) {
                            var file = {
                                "fileid": $($(this).children()[i]).attr("fileid"),
                                "name": $($(this).children()[i]).children("p").text(),
                                "fileLevel": $(this).prev().children("select").val()
                            };
                            fileArray.push(file);
                        }
                    }

                    row[name.replace(/.*:/, '')] = fileArray;
                });
                //子图片上传
                $(".uploadImgList", objRow).each(function () {
                    var name = $(this).attr('name');

                    var fileArray = [];
                    if ($(this).children().length > 0) {
                        for (var i = 0; i < $(this).children().length; i++) {
                            fileArray.push($($(this).children()[i]).attr("fileid"));
                        }
                    }

                    row[name.replace(/.*:/, '')] = fileArray;
                });

                //设置复选框按钮的数据。
                setSubCheckBoxData(objRow, row);

                //设置单选按钮的数据
                setSubRadioData(objRow, row);

                //取子表的选择器ID字段
                getSubSelectorIds(objRow, row);

                //设置数据字典的值
                $("input.dataLexiVal", objRow).each(function () {
                    var name = $(this).attr("name").split(":");
                    var fieldName = name[2];
                    row[fieldName] = $(this).prev().text() == "请选择" ? "" : $(this).prev().text();
                    if($(this).attr("dictype")==="0"){
                        row[fieldName] = $(this).parents(".lexiTree").next().find(".lexiSelectCont").find("option:selected").text();
                    }
                });
                //设置富文本的值
                $("div[name^='s:'].richTextCont", objRow).each(function () {
                    var name = $(this).attr("name").split(":");
                    var fieldName = name[2];
                    row[fieldName] = $(this).find("iframe").contents().find("body").html();
                });
                row["sort"] = i-1;
                table.fields.push(row);
            }
        });
        sub.push(table);
    });

    //意见
    var opinion = [];
    $('textarea[name^=opinion]').each(function () {
        opinion.push({
            name: $(this).attr('name').split(':')[1],
            value: $(this).val()
        });
    });
    var data = {main: main, sub: sub, opinion: opinion};
    return JSON.stringify(data);
}


/**
 * 设置子表复选框的数据
 * @param objParent
 * @param dataObj
 */
function setSubCheckBoxData(objParent, dataObj) {

    $(".checkOptionCont", objParent).each(function () {
        var name = $(this).attr("name").split(":");
        var selectorId = name[2];
        var checkVal = "";

        $(this).find('input:checkbox').each(function () {

                if ($(this).prop("checked")) {
                    checkVal += $(this).val() + ",";
                }
            }
        );
        dataObj[selectorId] = checkVal.substr(0, checkVal.length - 1);
    })
}

/**
 * 设置子表的radio单选按钮字段。
 * @param dataObj
 */
function setSubRadioData(objParent, dataObj) {
    $(".radioOptionCont", objParent).each(function () {
        var name = $(this).attr("name").split(":");
        var radioValue = $(this).find('input:radio:checked').val();
        var selectorId = name[2];
        dataObj[selectorId] = radioValue;
    })
}

/**
 * 设置子表的选择器ID字段
 * @param dataObj
 */
function getSubSelectorIds(objParent, dataObj) {
    $(".selectorInfo", objParent).each(function () {
        var ids = $(this).children().attr("ids");
        var name = $(this).children().attr("name").split(":");
        var selectorId = name[2] + "id";
        dataObj[selectorId] = ids;
    })
}

/**
 * 设置主表的选择器ID字段
 * @param dataObj
 */
function getSelectorIds(dataObj) {
    $("input[name^='m:'].selectorInput").each(function () {
        var ids = $(this).attr("ids");
        var name = $(this).attr("name").split(":");
        var selectorId = name[2] + "id";
        dataObj[selectorId] = ids;
    })
}


/**
 * 设置主表的radio单选按钮字段
 * @param dataObj
 */
function setMainRadioData(dataObj) {
    $("div[name^='m:'].radioOptionCont").each(function () {
        var name = $(this).attr("name").split(":");
        var radioValue = $(this).find('input:radio:checked').val();
        var selectorId = name[2];
        if(radioValue===undefined){
            radioValue="";
        }
        dataObj[selectorId] = radioValue;
    })
}

/**
 * 设置主表的复选字段
 * @param dataObj
 */
function setMainCheckBoxData(dataObj) {
    $("div[name^='m:'].checkOptionCont").each(function () {
        var name = $(this).attr("name").split(":");
        var selectorId = name[2];
        var checkVal = "";

        $(this).find('input:checkbox').each(function () {

                if ($(this).prop("checked")) {
                    checkVal += $(this).val() + ",";
                }
            }
        )
        dataObj[selectorId] = checkVal.substr(0, checkVal.length - 1);
    })
}

function handNumberData(obj) {
    var value = $(obj).val();
    var showType = $(obj).attr("showtype");
    if (!showType) return value;
    try {
        showType = showType.replaceAll("'", "\"");
        var json = jQuery.parseJSON(showType);
        var coinvalue = json.coinValue;
        var isShowComdify = json.isShowComdify;
        if (coinvalue != null && coinvalue != '' && value.split(coinvalue) != -1) {
            var ary = value.split(coinvalue);
            value = ary.join("");
        }
        if (isShowComdify && value.split(",") != -1) {
            var temp = value.split(",");
            value = temp.join("");
        }
    }
    catch (err) {
    }
    return value;
}
